unsigned minor, int readonly)
{
struct vbd *vbd;
+ struct block_device *bdev;
vbd = &blkif->vbd;
vbd->handle = handle;
vbd->pdevice = MKDEV(major, minor);
- vbd->bdev = open_by_devnum(
- vbd->pdevice,
- vbd->readonly ? FMODE_READ : FMODE_WRITE);
- if (IS_ERR(vbd->bdev)) {
- DPRINTK("vbd_creat: device %08x doesn't exist.\n",
+ bdev = open_by_devnum(vbd->pdevice,
+ vbd->readonly ? FMODE_READ : FMODE_WRITE);
+
+ if (IS_ERR(bdev)) {
+ DPRINTK("vbd_creat: device %08x could not be opened.\n",
vbd->pdevice);
return -ENOENT;
}
+ vbd->bdev = bdev;
+
if (vbd->bdev->bd_disk == NULL) {
DPRINTK("vbd_creat: device %08x doesn't exist.\n",
vbd->pdevice);